When a storage device receives a read request to read data from its non-volatile memory, the storage device may be configured to first identify where the data is stored in the non-volatile memory before the data can be read. To do so, the storage device may use an address directory system that includes addresses identifying where data is stored in the non-volatile memory. To save time, the storage device may load at least a portion of the address directory system into its volatile memory. When a read request is received, a controller of the storage device may access the address directory system in the volatile memory to identify where the data that is requested to be read is stored in the non-volatile memory. Although loading the address directory system into the volatile memory saves time compared to if the controller had to access the address directory system in the non-volatile memory every time a read request is received, accessing the volatile memory still takes some amount of time that contributes to the overall amount of time needed to complete a read request. Thus, ways to minimize the time needed to access the address directory system in the volatile memory in order to retrieve data in the non-volatile memory may be desirable.